package fr.charlott.business.service;

import java.util.List;

import fr.charlott.business.dto.ProduitDTO;
import fr.charlott.business.dto.SaisonDTO;
import fr.charlott.core.repository.model.Collection;
import fr.charlott.tools.exceptions.FunctionalException;
import fr.charlott.tools.exceptions.TechnicalException;

public interface ProduitService {

    void ajouterProduit(ProduitDTO produitDTO) throws FunctionalException, TechnicalException;

    ProduitDTO chercherParId(Long id);

    ProduitDTO chercherParReference(String reference);

    List<ProduitDTO> chargerTousLesProduits();

    void importerProduit(ProduitDTO produitDTO);

    void supprimerProduit(ProduitDTO produitDTO);

    List<ProduitDTO> chargerTousLesProduitsPourLaSaison(SaisonDTO saison);

    int getNbProduitVenudusParCollection(Collection collection, SaisonDTO saison);

    void supprimerTousLesProduits();

}
